﻿using RBAC.MaHaiBo.Entity;
using RBAC.MaHaiBo.Entity.Traceability;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RBAC.MaHaiBo.Service.TraceabilityService
{
    public interface IFarmService
    {
        /// <summary>
        /// 添加养殖信息
        /// </summary>
        /// <param name="farm">要添加数据信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddFarm(Farm farm);
        /// <summary>
        /// 显示养殖信息
        /// </summary>
        /// <param name="LOT">生产批次</param>
        /// <returns>返回数据信息</returns>
        Task<List<Farm>> FarmInfo(string LOT);
        /// <summary>
        /// 修改养殖信息
        /// </summary>
        /// <param name="farm">修改后的养殖信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> UpdFarm(Farm farm);

        /// <summary>
        /// 添加保健信息
        /// </summary>
        /// <param name="hygiene">要添加的数据信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddHygiene(Hygiene hygiene);
        /// <summary>
        /// 显示保健信息列表
        /// </summary>
        /// <returns>返回数据信息集合</returns>
        Task<List<Hygiene>> ListHygiene(string? LOT);
        /// <summary>
        /// 反填保健信息
        /// </summary>
        /// <param name="Hygieneid">保健信息编号</param>
        /// <returns>返回一条保健信息</returns>
        Task<Hygiene> HygieneInfo(int Hygieneid);
        /// <summary>
        /// 修改保健信息
        /// </summary>
        /// <param name="Hygiene">修改后的保健信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> UpdHygiene(Hygiene Hygiene);
        /// <summary>
        /// 删除保健信息
        /// </summary>
        /// <param name="Hygieneid">要删除的保健信息编号</param>
        /// <returns>返回受影响行数</returns>
        Task<int> DelHygiene(int Hygieneid);
        /// <summary>
        /// 添加企业部分信息
        /// </summary>
        /// <param name="farmFirm">养殖场</param>
        /// <param name="principal">负责人</param>
        /// <param name="NumberOfFields">存栏数量</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddFirm(string? farmFirm,string? principal,int NumberOfFields,string? LOT);
        /// <summary>
        /// 修改企业部分信息
        /// </summary>
        /// <param name="farmFirm">养殖场</param>
        /// <param name="principal">负责人</param>
        /// <param name="NumberOfFields">存栏数量</param>
        /// <param name="LOT">批次</param>
        /// <returns>返回受影响行数</returns>
        Task<int> UPdirm(string? farmFirm, string? principal, int NumberOfFields, string? LOT);

        /// <summary>
        /// 显示企业信息
        /// </summary>
        /// <param name="LOT">批次</param>
        /// <returns>返回企业信息</returns>
        Task<Firm> ListFirm(string? LOT);

    }
}
